# TODO: 导入必要的库和模块
import gradio as gr
import numpy as np
import pickle
import cv2
# TODO: 加载保存的KNN模型，这样我们可以使用预训练的模型进行预测
with open('best_knn_model.pkl', 'rb') as f:
    knn_model = pickle.load(f)
# TODO: 定义预测函数，这个函数将用于Gradio接口进行预测
def predict_digit(image):
    image = cv2.resize(image, (8, 8))
    predicted_digit = knn_model.predict([image.flatten()])[0]
    return str(predicted_digit)

# TODO: 创建Gradio接口，这个接口将用于用户输入和显示预测结果
iface = gr.Interface(
    fn=predict_digit,  
    inputs='sketchpad',  
    outputs='text',  
)
# TODO: 启动Gradio接口，用户可以通过这个接口进行交互
iface.launch()